/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package cz.tpj.util;

/**
 * Třída pro odchytávání vyjímek. Při vytvoření nové instance se do konstruktoru
 * zadá jako argument jedna ze statických proměnných. Ta bude charakterizovat typ
 * vyjímky. Pro případné rozšíření je konstruktor přijímající typ vyjímky a upřesňující zprávu.
 * @author Martin
 */
public class ErrorDatabase extends Exception{
    public static final String INVALID_DATA_FORMAT = "Invalid data format!";
    public static final String INVALID_DATA_IN_DATABESE = "Invalid data in database";
    public static final String ERROR_DATABASE_CONECTION = "Error database conection";
    //
    private String errorCode = null;
    private String message = "";
    //--------------------konstruktor---------------------
    /**
     * Argumentem konstruktoru by měla být jedna ze statických finálních proměnných této třídy.
     * Argument pak určuje typ vyjímky
     * @param errorCode statická proměnná této třídy.
     */
    public ErrorDatabase(String errorCode){
        super(errorCode.toString());
        this.errorCode = errorCode;
    }

    /**
     * Argumentem konstruktoru by měla být jedna ze statických finálních proměnných této třídy a zpráva.
     * První argument určuje typ vyjímky, druhý podrobnější zprávu (např. konkrétní místo v zniku, důvod vzniku).
     * @param errorCode statická proměnná této třídy,
     * @param message podrobnější zpráva.
     */
    public ErrorDatabase(String errorCode, String message){
        super(errorCode.toString());
        this.errorCode = errorCode;
        this.message = message;
    }

    //-------------------navratove metody-----------------
    /**
     * Vraci typ chyby jako String. Ten je roven jedné z finálních proměnných této třídy.
     * @return String
     */
    public String getErrorCode(){return errorCode;}

    /**
     * Vrací podrobnější zprávu o chybě (pokud nebyla zpráva zadána, pak vrátí prázdný řetězec).
     * @return String
     */
    @Override
    public String getMessage()  {return message;}
}
